There now exists a class of integrated circuits whose functions can be altered without changing the overall design of the circuit. Examples of such integrated circuits are Programmable Logic Devices (PLDs) and Field Programmable Gate Arrays (FPGAs), hereafter collectively referred to as "programmable ICs." The cost of manufacturing and programming a new version of a programmable IC is low. As a consequence, a circuit designer can easily upgrade and/or enhance the operation of a circuit containing a programmable IC by substituting a newly programmed one for an earlier version.
A difficulty associated with using programmable ICs is that a later-programmed version has the same physical appearance as an earlier-programmed version, even though the two ICs will have different electrical characteristics owing to the differences in the manner in which each is programmed. From a manufacturing standpoint, it is essential that the correct (generally, the latest-programmed) version of a programmable IC be assembled on a circuit board because the use of an earlier-programmed version may lead to a possible circuit board failure. To avoid this type of difficulty, most manufacturing facilities which assemble circuit boards containing programmable ICs use a variety of techniques to track the different versions of each type of programmable IC. However, despite careful attempts to differentiate between different versions of the same programmable IC, not infrequently, an incorrect (i.e., an earlier-programmed) version is incorrectly assembled on a circuit board.
Unfortunately, conventional fault testing techniques often do not reveal the presence of an incorrect version of a programmable IC on a circuit board. Thus, a faulty circuit board (i.e., one containing an incorrect version of a programmable IC) may go undetected after conventional fault testing. The inability to detect a faulty board greatly increases the risk of a possible field failure. Such field failures are costly and lead to customer dissatisfaction.
Thus, there is a need for a technique to detect different versions of an integrated circuit.